草庐IT

Python float - str - 浮点怪异

全部标签

c++ - 在哪些平台上整数除以零会触发浮点异常?

在另一个问题中,有人想知道为什么他们会得到“浮点错误”,而实际上他们的C++程序中有一个整数被零除。围绕这一点展开了讨论,有些人断言浮点异常实际上从未因浮点除以零而引发,而只会在整数除以零时出现。这对我来说听起来很奇怪,因为我知道:所有Windows平台上x86和x64上的MSVC编译代码报告int除以零为“0xc0000094:整数除以零”,浮点除以零为0xC000008E“浮点除以零”(启用时)IA-32andAMD64ISA指定#DE(integerdivideexception)作为中断0。浮点异常触发中断16(x87浮点)或中断19(SIMD浮点)。其他硬件具有类似的不同中断

c++ - 将 int vector 转换为 str vector

我正在尝试转换vector到vector.使用std::transform我用了std::to_string转换int至string但我不断收到错误消息。这是我的代码#include#include#include#includeintmain(){std::vectorv_int;std::vectorv_str;for(inti=0;i但是我收到了这个错误nomatchingfunctionforcallto'transform'std::transform(v_int.begin(),v_int.end(),v_str.begin(),std::to_string);^~~~~~

c++ - 为什么列表初始化允许从 double 值转换为浮点值?

列表初始化({...}语法)不允许缩小转换。例如,尝试使用3.14f列表初始化inti会出现编译错误,因为从浮点值到整数的转换正在缩小::11:32:error:narrowingconversionof'3.1400001e+0f'from'float'to'int'inside{}[-Wnarrowing]inti{3.14f};^话虽如此,为什么可以用3.14构造一个double类型的floatf?(从double到float的转换被认为是缩小的。)执行以下操作:floatf{3.14};没有编译错误。 最佳答案 在被认为是缩

c++ - 浮点比较的不可再现性

我和我的博士。学生在物理数据分析环境中遇到了一个问题,我可以对此有所了解。我们有代码分析来自LHC实验之一的数据,该实验给出了不可重复的结果。特别是,在同一台机器上运行的相同二进制文件的计算结果可能会因连续执行而异。我们知道不可再现性的许多不同来源,但排除了常见的嫌疑人。当比较两个名义上具有相同值的数字时,我们将问题归结为(double)浮点比较操作的不可再现性。由于分析中的先前步骤,偶尔会发生这种情况。一个例子我们刚刚找到了一个测试数字是否小于0.3的例子(注意我们从不测试浮点值之间的相等性)。事实证明,由于检测器的几何形状,计算有时可能会产生恰好为0.3(或其最接近的double表

c++ - 浮点比较 < 和 >= 生成的汇编中的严重差异

我正在试验生成的程序集并发现了一件有趣的事情。有两个函数在做相同的计算。它们之间的唯一区别是结果相加的方式。#includedoublefunc1(doublex,doubley){doubleresult1;doubleresult2;if(x*x=0.0){result+=x*x+x+y;}if(y*y>=0.0){result+=y*y+y+x;}returnresult*40.0;}x86clang3.7生成的程序集,-O2打开gcc.godbolt.org仍然如此不同和出乎意料。(在gcc上编译产生类似的程序集).LCPI0_0:.quad463082631684371251

c++ - IEEE 浮点标准的 (+0)+(-0) 是什么?

IEEE浮点标准明确定义了对任何float的任何算术运算,我说得对吗?如果是,出于好奇,(+0)+(-0)是什么?有没有办法在实践中用C++或其他常用的编程语言来检查这些事情? 最佳答案 有符号零的IEEE754算术规则声明+0.0+-0.0取决于舍入模式。在默认舍入模式下,它将是+0.0。当向-∞四舍五入时,它将是-0.0。您可以像这样在C++中检查它:#includeintmain(){std::coutOutput:+0.0++0.0==0+0.0+-0.0==0-0.0++0.0==0-0.0+-0.0==-0

c++ - 浮点错误 -1.#J 是什么意思?

最近,有时(很少)当我们从应用程序导出数据时,导出日志包含看起来像“-1.#J”的浮点值。我无法重现它,所以我不知道float在二进制中是什么样子,也不知道VisualStudio如何显示它。我试着查看printf的源代码,但没有找到任何东西(虽然不能100%确定我查看的是正确的版本...)。我试过使用谷歌搜索,但谷歌似乎会丢弃任何#。而且我找不到任何float错误列表。 最佳答案 它可以是负无穷大或NaN(不是数字)。由于字段的格式,printf不区分它们。我在VisualStudio2008中尝试了以下代码:doublea=0.

python - BeautifulSoup: AttributeError: 'str' 对象没有属性 'copy' 。在 Ubuntu 上工作,在 Windows 上失败

我在使用BeautifulSoup时遇到一个奇怪的错误。这是我正在运行的代码片段:whileTrue:listing_soup=soupify(urlget(page_url))foriinlisting_soup.findAll('div','searchResultContent'):#dosomestuff...这是抛出的异常:Traceback(mostrecentcalllast):File"C:\path\to\script.py",line716,inforiinlisting_soup.findAll('div','searchResultContent'):File"

c++ - 如何调用使用 IDispatch.Invoke 接收浮点值的函数?

我在使用IDispatch.Invoke调用具有浮点参数和浮点结果的函数时遇到问题。这是一个最小的复制:#include#includeintmain(intargc,char*argv[]){CoInitialize(NULL);CComPtrwordapp;if(SUCCEEDED(wordapp.CoCreateInstance(L"Word.Application",NULL,CLSCTX_LOCAL_SERVER))){CComVariantresult;CComVariantcentimeters((float)2.0);CComVariantretval=wordapp.

c++ - OpenCL 浮点精度

我发现OpenCL中主机-客户端float标准存在问题。问题是在x86中编译时,由Opencl计算的float与我的visualstudio2010编译器不在相同的float限制内。但是,在x64中编译时,它们处于相同的限制。我知道它必须与http://www.viva64.com/en/b/0074/有关我在测试期间使用的来源是:http://www.codeproject.com/Articles/110685/Part-1-OpenCL-Portable-Parallelism当我在x86中运行该程序时,当内核和C++程序采用1269760个数字的平方时,它会给我202个相等的数